home *** CD-ROM | disk | FTP | other *** search
/ Tech Arsenal 1 / Tech Arsenal (Arsenal Computer).ISO / tek-01 / wics.zip / NUMEDIT.CPP < prev    next >
C/C++ Source or Header  |  1993-03-03  |  3KB  |  143 lines

  1. //==============================================================================================
  2. //
  3. //    Windows Interface Construction Set
  4. //    Version 1.00
  5. //
  6. //    NUMEDIT.CPP - Numeric Edit Class Source File
  7. //    Copyright ⌐ 1993 by Microdyne Development Technologies.
  8. //    All rights reserved.
  9. //==============================================================================================
  10.  
  11. #include <owl.h>
  12. #include <numedit.h>
  13.  
  14. TNumericEdit::TNumericEdit (PTWindowsObject AParent, int ResourceId, PTModule AModule)
  15.     : TEdit (AParent, ResourceId, 0, AModule)
  16. {
  17. }
  18.  
  19. TNumericEdit::~TNumericEdit ()
  20. {
  21. }
  22.  
  23. void TNumericEdit::WMCommand (RTMessage Msg)
  24. {
  25.     DefWndProc(Msg);
  26. }
  27.  
  28. void TNumericEdit::SetupWindow ()
  29. {
  30.     TEdit::SetupWindow();
  31. }
  32.  
  33. int TNumericEdit::GetLineLength()
  34. {
  35.     TMessage    msg;
  36.  
  37.     msg.Receiver = HWindow;
  38.     msg.Message  = EM_LINELENGTH;
  39.     msg.WParam   = 0;
  40.     msg.LParam   = 0L;
  41.     msg.Result   = 0L;
  42.  
  43.     DefWndProc (msg);
  44.  
  45.     return (int) msg.Result;
  46. }
  47.  
  48. BOOL TNumericEdit::GetLine(LPSTR ATextString, int StrSize)
  49. {
  50.     TMessage    msg;
  51.     int            BytesCopied;
  52.     BOOL        Success;
  53.  
  54.     if ( StrSize <= 0 )
  55.         return FALSE;
  56.  
  57.     if ( (StrSize >= GetLineLength() + 1) )
  58.         Success = TRUE;
  59.     else
  60.         Success = FALSE;
  61.  
  62.     if ( StrSize == 1 )
  63.     {
  64.         ATextString[0] = '\0';
  65.         return Success;
  66.     }
  67.  
  68.     msg.Receiver = HWindow;
  69.     msg.Message  = EM_GETLINE;
  70.     msg.WParam   = 0;
  71.     msg.LParam   = (LPARAM) ATextString;
  72.     msg.Result   = 0L;
  73.  
  74.     DefWndProc (msg);
  75.  
  76.     BytesCopied = (int) msg.Result;
  77.  
  78.     if ( BytesCopied != 0 )
  79.     {
  80.         ATextString[BytesCopied] = '\0'; // Windows returns non-null terminated string
  81.         return Success;
  82.     }
  83.  
  84.     return FALSE;
  85. }
  86.  
  87. int TNumericEdit::GetInt ()
  88. {
  89.     TMessage    msg;
  90.  
  91.     msg.Receiver = HWindow;
  92.     msg.Message  = NEM_GETINTEGER;
  93.     msg.WParam   = 0;
  94.     msg.LParam   = 0L;
  95.     msg.Result   = 0L;
  96.  
  97.     DefWndProc (msg);
  98.  
  99.     return msg.Result;
  100. }
  101.  
  102. long TNumericEdit::GetLong ()
  103. {
  104.     TMessage    msg;
  105.  
  106.     msg.Receiver = HWindow;
  107.     msg.Message  = NEM_GETLONGINT;
  108.     msg.WParam   = 0;
  109.     msg.LParam   = 0L;
  110.     msg.Result   = 0L;
  111.  
  112.     DefWndProc (msg);
  113.  
  114.     return msg.Result;
  115. }
  116.  
  117. void TNumericEdit::SetInt (int i)
  118. {
  119.     TMessage    msg;
  120.  
  121.     msg.Receiver = HWindow;
  122.     msg.Message  = NEM_SETINTEGER;
  123.     msg.WParam   = i;
  124.     msg.LParam   = 0L;
  125.     msg.Result   = 0L;
  126.  
  127.     DefWndProc (msg);
  128. }
  129.  
  130. void TNumericEdit::SetLong (long l)
  131. {
  132.     TMessage    msg;
  133.  
  134.     msg.Receiver = HWindow;
  135.     msg.Message  = NEM_SETLONGINT;
  136.     msg.WParam   = 0;
  137.     msg.LParam   = l;
  138.     msg.Result   = 0L;
  139.  
  140.     DefWndProc (msg);
  141. }
  142.  
  143.